#ifndef _HIGHSCORES_H_
#define _HIGHSCORES_H_

#include "utypes.h"

/** @defgroup HIGHSCORES HIGHSCORES
 * @{
 *
 * Este módulo contém as funções que lidam com os high scores, nomeadamente a sua ordenação, impressão e serialização
 */

/**
 * Estrutura que representa a pontuacao de um jogador. E composta
 * pelo nome com 3 caracteres e a sua pontuacao.
 */
typedef struct {
  char letter1;
  char letter2;
  char letter3;
  dword_t score;
} Score;

/**
 * Visualiza no ecra as 15 melhores pontuacoes registadas.
 */
void printScores(Score *highscores, byte_t *target, byte_t *table);

/**
 * Ordena as pontuacoes atraves do algoritmo de bubble sort.
 */
void sortScores(Score *highscores);

/**
 * Carrega as melhores pontuacoes de um ficheiro.
 */
bool_t loadScores(char *file, Score *highscores);

/**
 * Grava as pontuacoes num ficheiro.
 */
void saveScores(char *file, Score *highscores);

/** @} End of HIGHSCORES */
#endif
